// 小数计算问题
console.log(0.1 + 0.2)// number 数值类型 小数位因为二进制表达不够精确

// 大数值超出计算范围问题
let a = 1243534543654645756765453412345678;// 数字太大，超过范围 计算不够精确 数据类型number
console.log(a + 1);// 1.2435345436546458e+33
console.log(typeof (a));// number

let b = 1243534543654645756765453412345678n;// es6 数字＋n  数据类型从 number 变成 bigint
console.log(b + 1n);// 1243534543654645756765453412345679n————bigint+number不行 bigint要和bigint计算
console.log(typeof (b));// bigint

// 字符串转换成bigint类型
let c = BigInt("1243534543654645756765453412345678");//BigInt
console.log(c);// 1243534543654645756765453412345678n
console.log(b + c);// 2487069087309291513530906824691356n ok

console.log(1n + 4n);// 5n
console.log(5n / 2n);// 2n 不精确 bigint 不擅长

// bigint 不能与其他数据类型混用
// console.log(5n + 1)// 报错：Cannot mix BigInt and other types, use explicit conversions ->强制类型转换解决
// 隐式类型转换
console.log(+new Date());// 1650957538158
console.log(true + 1);// 2
console.log('1' + 1);// "11" string
// ->强制类型转换解决 bigint不可混用
console.log(5n + BigInt(1));// 6n
console.log(Number(5n) + 1);// 6

console.log(+ "1");// 1
console.log(+ "1n");// NaN
console.log(+ 1n);// Cannot convert a BigInt value to a number
console.log(+BigInt(1));// 报错：Cannot convert a BigInt value to a number





